package com.ocom.exposeapi.controller;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ocom.common.entity.card.EntityXfGoodsListProcess;
import com.ocom.common.entity.card.EntityXfRecordProcess;
import com.ocom.common.request.xfrecde.GetXfGoodListRequest;
import com.ocom.common.resp.Result;
import com.ocom.common.utils.NumConvertUtil;
import com.ocom.exposeapi.feign.PayConfigClientService;
import com.ocom.exposeapi.feign.XfRecordFeign;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
@Slf4j
@RestController
public class WeimiController {

    @Autowired
    private PayConfigClientService payConfigClientService;

    @Autowired
    private XfRecordFeign xfRecordFeign;
    @PostMapping("/weimi/callBack")
    public String callBack(@RequestBody String params){
        log.info("接收到微米的回调：参数：【{}】",params);
        JSONObject jsonObject = JSON.parseObject(params);
        return this.payConfigClientService.weimiCallBack(jsonObject);
//        Long comId = 0l ;
//        if(jsonObject.getString("tradeNoOut").startsWith("CART")){
//            comId = NumConvertUtil.HexStringToInt(jsonObject.getString("tradeNoOut").substring(4,10)).longValue();
//        }else{
//            comId = NumConvertUtil.HexStringToInt(jsonObject.getString("tradeNoOut").substring(2,8)).longValue();
//        }
//        EntityXfRecordProcess refundXfRecordProcess = xfRecordProcessService.selectTradeNo(comId, jsonObject.getString("tradeNoOut"), null);
//
//        JSONObject jsonObjectA = new JSONObject();
//        jsonObjectA.put("comId",comId);
//        jsonObjectA.put("orderNo",jsonObject.getString("tradeNoOut"));
//        Result result = this.payConfigClientService.getXfGoodsList(jsonObjectA);
//        //挑选一个未填写的菜品
//        if(result.getCode() == 200){
//            List<EntityXfGoodsListProcess> xfGoodsListProcesseList = JSON.parseArray(JSON.toJSONString(result.getData()),EntityXfGoodsListProcess.class);
//            EntityXfGoodsListProcess entityXfGoodsListProcess = null;
//            for (int i = 0; i < xfGoodsListProcesseList.size(); i++) {
//                String[] pr =   xfGoodsListProcesseList.get(i).getDishesName().split("||");
//                if(StrUtil.isBlank(xfGoodsListProcesseList.get(i).getReceiptName()) && jsonObjectA.getString("goodsId").equals(pr[1])){
//                    entityXfGoodsListProcess = xfGoodsListProcesseList.get(i);
//                    entityXfGoodsListProcess.setReceiptName(jsonObjectA.getString("tradeNoIn"));
//                    break;
//                }
//            }
//            if(ObjectUtil.isNotEmpty(entityXfGoodsListProcess)){
//                this.payConfigClientService.updateGoods(entityXfGoodsListProcess);
//            }
//        }
//
//        GetXfGoodListRequest request = new GetXfGoodListRequest();
//        request.setComId(comId);
//        request.setOrderNo(jsonObject.getString("tradeNoOut"));
//        request.setMonthValue();
//        Result resultA = this.xfRecordFeign.getXfGoodList(request);
//
//        //挑选一个未填写的菜品
//        if(resultA.getCode() == 200){
//            List<EntityXfGoodsListProcess> xfGoodsListProcesseList = JSON.parseArray(JSON.toJSONString(resultA.getData()),EntityXfGoodsListProcess.class);
//            EntityXfGoodsListProcess entityXfGoodsListProcess = null;
//            for (int i = 0; i < xfGoodsListProcesseList.size(); i++) {
//                String[] pr =   xfGoodsListProcesseList.get(i).getDishesName().split("||");
//                if(StrUtil.isBlank(xfGoodsListProcesseList.get(i).getReceiptName()) && jsonObjectA.getString("goodsId").equals(pr[1])){
//                    entityXfGoodsListProcess = xfGoodsListProcesseList.get(i);
//                    entityXfGoodsListProcess.setReceiptName(jsonObjectA.getString("tradeNoIn"));
//                    break;
//                }
//            }
//            if(ObjectUtil.isNotEmpty(entityXfGoodsListProcess)){
//
//                this.payConfigClientService.updateGoods(entityXfGoodsListProcess);
//            }
//        }

//        return "{\"code\":200,\"msg\":\"success\"}";
    }
}
